package com.cskaoyan.javase.homework.senior._04io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @description:
 * @author: songtao@cskaoyan.onaliyun.com
 **/

/*
给定一个文本文件，这个文件中有随机的一些数字字符(你可以自己随便打一段数字)，统计这些数字有几个偶数，几个奇数，把这个结果追加写入到该文本文件的末尾。
例如：
a.txt文件：
	3241256364789629090126581212515
	偶数个数:16
    奇数个数:15
    注: 举的例子中,一共有31个数,直接判断这些0-9的数的奇偶性,计算个数即可
 */
public class OutStreamAndInStreamDemo {
    public static void main(String[] args) {
        // 把数字读入内容
        FileInputStream in = null;
        FileOutputStream out = null;
        try {
            in = new FileInputStream("a.txt");
            // readData用于接收每次读取到的一个数字
            int readData;
            // 统计奇数
            int odd = 0;
            // 统计偶数
            int even = 0;
            while ((readData = in.read()) != -1) {
                // 判断是奇数还是偶数
                if (readData % 2 == 0) {
                    even += 1;
                } else {
                    odd += 1;
                }
            }
            // 统计的数据追加写入文件
            out = new FileOutputStream("a.txt", true);
            // 换行然后追加数据
            out.write("\r\n".getBytes());
            out.write(("偶数个数:" + even).getBytes());
            out.write("个".getBytes());
            out.write("\r\n".getBytes());
            out.write(("奇数个数:" + odd).getBytes());
            out.write("个".getBytes());

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
                if (out != null) {
                    out.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
